package com.example.myblog1_0.service;

import com.example.myblog1_0.model.MyUser;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Service;

/**
 * @Author: xc
 * @Date: 2018/12/14 16:14
 * @Description:
 **/
@Service
public interface UserService {
    /**
     * 由前端传来的用户对象在数据库进行查询
     * @param myUser 传递来的对象
     * @return 查找到的用户封装为一个对象
     */
    MyUser findUserInfo(MyUser myUser);

    /**
     * 插入一个用户
     * @param myUser 传递来的用户对象
     * @return 插入成功则为true
     */
    boolean insetUser(MyUser myUser);

    /**
     * 根据用户名查找用户，以检验用户名是否存在
     * @param username 用户名
     * @return 用户对象
     */
    MyUser findUserInfoByName(String username);

    /**
     * 根据回调的openid查询用户
     * @param openid 返回的openid
     * @return 用户对象
     */
    MyUser findUserInfoByOpenid(String openid);

    /**
     * 更新用户账号密码
     * @param myUser
     */
    boolean updateQqUser(MyUser myUser);

    /**
     * 返回用户数据
     * @param username 账户
     * @return
     */
    JSONObject getUserInfoByUsername(String username);

    /**
     * 更新用户昵称
     * @param username
     * @param nickname
     * @return
     */
    JSONObject updateNickname(String username,String nickname);

    /**
     * 更新用户头像地址
     * @param username
     * @param avatarUrl
     * @return
     */
    JSONObject updateAvatar(String username,String avatarUrl);

    /**
     * 按照昵称查找用户返回json
     * @param nickname
     * @return
     */
    JSONObject findUserByNickname(String nickname);

    /**
     * 按照昵称查找用户返回MyUser
     * @param nickname
     * @return
     */
    MyUser getUserByNickname(String nickname);
}
